import { Prisma, PrismaClient } from '@prisma/client'

export const database: PrismaClient = new PrismaClient({
  errorFormat: 'pretty',
  log: ['query', 'warn']
})

// async function main() {
//   // const roles: Prisma.RoleCreateInput[] = [
//   //   {
//   //     type: 'ordinary',
//   //     permissions: 1
//   //   },
//   //   {
//   //     type: 'admin',
//   //     permissions: 999
//   //   }
//   // ]

//   // await Promise.all(
//   //   roles.map(async data => {
//   //     await database.role.create({
//   //       data
//   //     })
//   //   })
//   // )
//   const role = await database.role.findUnique({
//     where: { permissions: 1 }
//   })
//   console.log('role', role)
//   try {
//     // const id = 10010
//     // for (let i = 0; i < 50; i++) {
//     //   const user = await database.auth.create({
//     //     data: {
//     //       username: `${id + i}`,
//     //       password: '112233',
//     //       role: {
//     //         connect: {
//     //           id: role.id
//     //         }
//     //       },
//     //       user: {
//     //         create: {
//     //           name: `${id + i}`,
//     //           email: `${id + i}@prisma.com`
//     //         }
//     //       }
//     //     }
//     //   })
//     //   console.log(user)
//     // }
//     // const user = await database.user.create({
//     //   data: {
//     //     name: 'admin',
//     //     email: 'bosda1b@prisma.io'
//     //   }
//     // })
//     // console.log(user)
//     // const user = await database.user.findMany()
//     // console.log(user)
//     // const users = await database.user.findMany()
//     // const user = await database.user.create({
//     //   data: {
//     //     name: 'Bob',
//     //     email: 'bob@prisma.io',
//     //     posts: {
//     //       create: {
//     //         title: 'Hello World'
//     //       }
//     //     }
//     //   }
//     // })
//     // console.log(user)
//     const usersWithPosts = await database.user.findMany({
//       select: {
//         posts: true,
//         name: true,
//         id: true,
//         createdAt: true,
//         auth: true
//       },
//       // where: { id: { in: [1, 3] } },
//       // skip: 1, // 跳过
//       take: 10 //选择数量
//     })
//     // // console.dir(usersWithPosts, { depth: null })
//     console.dir(usersWithPosts, { depth: null })
//   } catch (error) {
//     console.error('------------------>                 ', error)
//     await database.$disconnect()
//     process.exit(1)
//   }
// }

// main()
//   .then(async () => {
//     await database.$disconnect()
//   })
//   .catch(async e => {
//     console.error(e)
//     await database.$disconnect()
//     process.exit(1)
//   })
